package com.ftg.learn.chapter04;

/**
 * 线性存储结构，线性表的常 见方法
 * @author kangjx
 * @createTime 2022/6/30
 */
public interface MyList<T> {

    /**
     * 这个方法用来做 lk alc e
     * @param val zhi
     * @return
     */
   boolean add(T val);

    /**
     * jklffds
     * @param index
     * @return
     */
   T get(int index);


    /**
     * whnt
     * @param index
     * @param newVal
     * @return
     */
   boolean update(int index,T newVal);

    /**
     * fsd
     * @param index
     * @return
     */
   boolean delete(int index);

    /**
     * fqgx mmbw
     * @param val
     * @return
     */
   boolean delete(T val);

    /**
     * ta ayc
     * @return
     */
   int size();

   default void lessThenZero(int index){
       if( index < 0 ){
           throw new ArrayIndexOutOfBoundsException("数组的下标不能小于0");
       }
   }

    default void grentThenMax(int index,int max){
        if( index > max ){
            throw new ArrayIndexOutOfBoundsException("数组的下标超过了最大元素个数");
        }
    }

}
